home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 March / EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso / earcd / misc / pdflib / bindings / python / pdfclock.py < prev   
Text File  |  1999-01-01  |  2KB  |  89 lines

  1. #!/usr/bin/python
  2. # PDFlib client: pdfclock example in Python
  3. # (C) Thomas Merz 1998
  4.  
  5. from pdflib import *
  6. from time import *
  7.  
  8. RADIUS = 200.0;
  9. MARGIN = 20.0;
  10.  
  11. fp = fopen("pdfclock_python.pdf", "w")
  12. ip = PDF_get_info()
  13. PDF_info_Creator_set(ip, "pdfclock.py")
  14. PDF_info_Author_set(ip, "Thomas Merz")
  15. PDF_info_Title_set(ip, "PDF clock (Python)");
  16.  
  17. p = PDF_open(fp, ip)
  18.  
  19. PDF_begin_page(p, 2 * (RADIUS + MARGIN), 2 * (RADIUS + MARGIN));
  20.  
  21. PDF_set_transition(p, trans_wipe);
  22. PDF_set_duration(p, 0.5);
  23.  
  24. PDF_translate(p, RADIUS + MARGIN, RADIUS + MARGIN);
  25. PDF_setrgbcolor(p, 0.0, 0.0, 1.0);
  26. PDF_save(p);
  27.  
  28. # minute strokes 
  29. PDF_setlinewidth(p, 2.0);
  30. for alpha in range(0, 360, 6):
  31.     PDF_rotate(p, 6.0);
  32.     PDF_moveto(p, RADIUS, 0.0);
  33.     PDF_lineto(p, RADIUS-MARGIN/3, 0.0);
  34.     PDF_stroke(p);
  35.  
  36. PDF_restore(p);
  37. PDF_save(p);
  38.  
  39. # 5 minute strokes
  40. PDF_setlinewidth(p, 3.0);
  41. for alpha in range(0, 360, 30):
  42.     PDF_rotate(p, 30.0);
  43.     PDF_moveto(p, RADIUS, 0.0);
  44.     PDF_lineto(p, RADIUS-MARGIN, 0.0);
  45.     PDF_stroke(p);
  46.  
  47. (tm_year, tm_year, tm_day,
  48. tm_hour, tm_min, tm_sec, 
  49. tm_weekday, tm_julian, tm_ds) = localtime(time());
  50.  
  51. # draw hour hand 
  52. PDF_save(p);
  53. PDF_rotate(p, (-((tm_min/60.0) + tm_hour - 3.0) * 30.0));
  54. PDF_moveto(p, -RADIUS/10, -RADIUS/20);
  55. PDF_lineto(p, RADIUS/2, 0.0);
  56. PDF_lineto(p, -RADIUS/10, RADIUS/20);
  57. PDF_closepath(p);
  58. PDF_fill(p);
  59. PDF_restore(p);
  60.  
  61. # draw minute hand
  62. PDF_save(p);
  63. PDF_rotate(p, (-((tm_sec/60.0) + tm_min - 15.0) * 6.0));
  64. PDF_moveto(p, -RADIUS/10, -RADIUS/20);
  65. PDF_lineto(p, RADIUS * 0.8, 0.0);
  66. PDF_lineto(p, -RADIUS/10, RADIUS/20);
  67. PDF_closepath(p);
  68. PDF_fill(p);
  69. PDF_restore(p);
  70.  
  71. # draw second hand
  72. PDF_setrgbcolor(p, 1.0, 0.0, 0.0);
  73. PDF_setlinewidth(p, 2);
  74. PDF_save(p);
  75. PDF_rotate(p, -((tm_sec - 15.0) * 6.0));
  76. PDF_moveto(p, -RADIUS/5, 0.0);
  77. PDF_lineto(p, RADIUS, 0.0);
  78. PDF_stroke(p);
  79. PDF_restore(p);
  80.  
  81. # draw little circle at center
  82. PDF_circle(p, 0, 0, RADIUS/30);
  83. PDF_fill(p);
  84.  
  85. PDF_restore(p);
  86. PDF_end_page(p);
  87.  
  88. PDF_close(p);
  89.